import pandas as pd
data = {'Nom': ['Anna', 'Bob', 'Charles'], 'Age': [28, 34, 29]}
df = pd.DataFrame(data)
df| Nom | Age | |
|---|---|---|
| 0 | Anna | 28 |
| 1 | Bob | 34 |
| 2 | Charles | 29 |
Remi Genet
2024-01-08
Un dataframe est une structure de données bidimensionnelle, similaire à une feuille de calcul ou une table de base de données. Ils sont extrêmement utiles pour la manipulation et l’analyse de données structurées. En Python, la bibliothèque la plus courante pour travailler avec des dataframes est Pandas.
import pandas as pd
data = {'Nom': ['Anna', 'Bob', 'Charles'], 'Age': [28, 34, 29]}
df = pd.DataFrame(data)
df| Nom | Age | |
|---|---|---|
| 0 | Anna | 28 |
| 1 | Bob | 34 |
| 2 | Charles | 29 |
print(df) ou Display(df) (dans un notebook - affiche un tableau de façon plus lisible. Il faut importer from IPython.display import display)df['Nom']df[df['Age'] > 30]Les dataframes, via la bibliothèque Pandas, sont des outils essentiels en Python pour la manipulation de données. Leur simplicité et leur puissance en font un choix privilégié pour les data scientists et les analystes de données.
Quand on travaille avec de grands ensembles de données, il est crucial de savoir comment gérer efficacement la mémoire et le temps de traitement.
chunk_size = 1000
for chunk in pd.read_csv('large_file.csv', chunksize=chunk_size):
# Traitement de chaque morceaudf['Nouvelle_Colonne'] = df['Colonne1'] + df['Colonne2']df.drop('Colonne', axis=1, inplace=True)df['Colonne'].apply(lambda x: x * 2)Objectif: Manipuler un grand fichier CSV et effectuer des opérations sur les colonnes.
Énoncé: Lisez un grand fichier CSV par morceaux. Pour chaque morceau, ajoutez une colonne ‘AgeDoubled’ qui est le double de la colonne ‘Age’, puis enregistrez chaque morceau modifié dans un nouveau fichier.
Solution:
La maîtrise des opérations avancées sur les dataframes est essentielle pour traiter efficacement des ensembles de données complexes. Les possibilités offertes par Pandas en font un outil incontournable pour la manipulation et l’analyse de données en Python.
import dask.dataframe as dddask_df = dd.from_pandas(pandas_df, npartitions=10)iterrows() et itertuples() pour itérer sur les dataframes de manière plus performante.import matplotlib.pyplot as plt
# Fusion des fichiers CSV
df_total = pd.concat([pd.read_csv(f) for f in fichiers_csv])
# Calcul du total des ventes par mois
ventes_par_mois = df_total.groupby('Mois')['Ventes'].sum()
# Création du graphique
ventes_par_mois.plot(kind='line')
plt.title('Ventes Mensuelles')
plt.show()Les dataframes, grâce à leur flexibilité et leur puissance, sont un outil fondamental pour l’analyse de données, le traitement préparatoire pour le machine learning, et la création de rapports et visualisations. L’optimisation des performances et l’utilisation de bibliothèques complémentaires comme Dask peuvent augmenter considérablement l’efficacité du travail avec de grandes quantités de données.
Après avoir abordé les bases, les aspects avancés et des exemples concrets d’utilisation des dataframes, il est utile de conclure avec quelques astuces et meilleures pratiques qui peuvent rendre le travail avec les dataframes encore plus efficace et agréable.
df = (pd.read_csv('data.csv')
.dropna()
.rename(columns={'old_name': 'new_name'})
.sort_values('column'))On parle aussi pour décrire ce genre d’API, de fluent API. Le terme API fait ici référence à l’API utilisateur, c’est à dire l’ensemble des fonctions et méthodes que l’on peut utiliser pour interagir avec une bibliothèque. Une API est dite fluide lorsqu’elle permet d’enchaîner les appels de méthodes, comme dans l’exemple ci-dessus.
query pour le Filtrage: La méthode query permet un filtrage plus lisible et souvent plus rapide.np.where: Pour créer de nouvelles colonnes basées sur des conditions.La maîtrise des dataframes dans Pandas ne se limite pas seulement à connaître diverses fonctions et méthodes, mais implique également une compréhension des meilleures pratiques et astuces pour optimiser la performance et la lisibilité du code. Cela inclut une utilisation efficace de la mémoire, l’évitement des boucles inutiles, et une bonne documentation du code.
Vous trouverez également des exemples simple d’utilisation de tout les fonctions standards dans ce Notebook
que vous pouvez également télécharger directement ici:
Pour vous entrainer, vous pouvez télécharger le fichier suivant et l’importer dans un notebook Jupyter :
Les Librairies Python Introduction à Python Calcul Scientifique et Optimization Installer et importer des librairies en Python Les Librairies Python Installer et importer des librairies en Python Les DataFrames Calcul Scientifique et Optimization Machine Learning Recupérer des données du net Python - Aussi un language pour servir des données Visualiser et présenter ces données avec Python Travaux Pratiques TP-3 Libraries Back to Main Website https://remigenet.github.io/website/ Home /index.html Comprendre Et Installer Python /content/Cours_1/index.html Histoire du Langage /content/Cours_1/1-Histoire.html Exécution d’un Programme Python /content/Cours_1/2-Python_Execution.html Versions et Compilation de Python /content/Cours_1/3-ManyPythons.html Le PATH /content/Cours_1/4-Path.html Path.. et environnements virtuels! /content/Cours_1/5-PathandVirtualEnv.html Les IDEs /content/Cours_1/6-IDEs.html Les Notebooks /content/Cours_1/7-Notebooks.html — Quelques IDEs en Python VsCode - L’IDE Flexible et Polyvalent /content/Cours_1/IDEs/VsCode.html Spyder - Un IDE Orienté Science des Données /content/Cours_1/IDEs/Spyder.html PyCharm - L’IDE orienté Python /content/Cours_1/IDEs/Pycharm.html Travaux Pratiques TP - Construire son python depuis la source /content/Cours_1/TP-ConstruireSonPython.html Syntaxes et Concepts de Base /content/Cours_2/index.html Syntaxe et objets de Base Python /content/Cours_2/1-FondamentauxSyntaxique.html Fonctions et Modules /content/Cours_2/2-FonctionsEtModules.html Introduction à la POO en Python /content/Cours_2/3-IntroducingPOOConcept.html Exercices d’applications /content/Cours_2/Exercices.html Les Librairies Python /content/Cours_3/index.html Installer et importer des librairies en Python /content/Cours_3/0-Install_and_import.html Les DataFrames /content/Cours_3/1-Dataframes.html Calcul Scientifique et Optimization /content/Cours_3/2-Calcul_Scientifique_et_Optimization.html Machine Learning /content/Cours_3/3-MachineLearning.html Recupérer des données du net /content/Cours_3/4-Access_Internet.html Python - Aussi un language pour servir des données /content/Cours_3/5-Feed_Internet.html Visualiser et présenter ces données avec Python /content/Cours_3/6-Visualisation.html TP-3 Libraries /content/Cours_3/TP-3.html Bonne pratiques, Dangers, et Astuces /content/Cours_4/index.html Mutabilité et Scope /content/Cours_4/1-MutabilitéEtScopes.html Typage en Python /content/Cours_4/2-TypageEnPython.html Asynchronie et Multiprocessing /content/Cours_4/3-TournonsAutourduGIL.html TP - Requettes API avec Python /content/Cours_4/TP-RequetteruneAPI.html Concepts avancés /content/Cours_5/index.html L’arbre Syntaxique Abstrait ou AST /content/Cours_5/1-AST.html Python Orienté Objet - Les Dunders /content/Cours_5/2-POO_le_retour.html Python Orienté Objet - les Design Patterns /content/Cours_5/3-patterndesign.html TP-5 /content/Cours_5/TP5.html Sujets de Projets possibles Les DataFrames
Introduction à Python, Rémi Genet.
Licence
Code source disponible sur Github
Site construit avec et Quarto
Inspiration pour la mise en forme du site ici
Code source disponible sur GitHub
Introduction à Python - Les DataFrames Introduction à Python - Les DataFrames Introduction à Python - Les DataFrames Introduction à Python Les DataFrames Les DataFrames